how does an api work